package com.fowo.api.model.tmp.sales.statement;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 销售统计临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpSalesStatementImportPo {

  /** 亚马逊订单号 */
  @ExcelProperty("亚马逊订单号")
  @Size(max = 50, message = "亚马逊订单号长度不能超过50")
  private String amazonOrderId;

  /** 卖家为订单提供的唯一编号 */
  @ExcelProperty("卖家为订单提供的唯一编号")
  @Size(max = 50, message = "卖家为订单提供的唯一编号长度不能超过50")
  private String merchantOrderId;

  /** 下单日期 */
  @ExcelProperty("下单日期")
  @DateTimeString(message = "下单日期不是有效的时间日期格式")
  private String purchaseDate;

  /** 订单最近更新时间 */
  @ExcelProperty("订单最近更新时间")
  @DateTimeString(message = "订单最近更新时间不是有效的时间日期格式")
  private String lastUpdatedDate;

  /** 订单的当前状态 */
  @ExcelProperty("订单的当前状态")
  @Size(max = 50, message = "订单的当前状态长度不能超过50")
  private String orderStatus;

  /** 订单的配送方式 */
  @ExcelProperty("订单的配送方式")
  @Size(max = 50, message = "订单的配送方式长度不能超过50")
  private String fulfillmentChannel;

  /** 下单渠道 */
  @ExcelProperty("下单渠道")
  @Size(max = 50, message = "下单渠道长度不能超过50")
  private String salesChannel;

  /** CBA/WBA 订单下单的子渠道 */
  @ExcelProperty("CBA/WBA 订单下单的子渠道")
  @Size(max = 50, message = "CBA/WBA 订单下单的子渠道长度不能超过50")
  private String orderChannel;

  /** 配送服务类型 */
  @ExcelProperty("配送服务类型")
  @Size(max = 50, message = "配送服务类型长度不能超过50")
  private String shipServiceLevel;

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 5000, message = "标题长度不能超过5000")
  private String productName;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** 该商品在订单内的当前状态 */
  @ExcelProperty("该商品在订单内的当前状态")
  @Size(max = 50, message = "该商品在订单内的当前状态长度不能超过50")
  private String itemStatus;

  /** 此商品的购买数量 */
  @ExcelProperty("此商品的购买数量")
  @Size(max = 50, message = "此商品的购买数量长度不能超过50")
  private String quantity;

  /** 币种 */
  @ExcelProperty("币种")
  @Size(max = 50, message = "币种长度不能超过50")
  private String currency;

  /** 买家为商品支付的金额 */
  @ExcelProperty("买家为商品支付的金额")
  @DecimalString(
    message = "买家为商品支付的金额小数格式不正确",
    label = "买家为商品支付的金额"
  )
  private String itemPrice;

  /** 买家为商品税支付的金额 */
  @ExcelProperty("买家为商品税支付的金额")
  @DecimalString(
    message = "买家为商品税支付的金额小数格式不正确",
    label = "买家为商品税支付的金额"
  )
  private String itemTax;

  /** 买家支付的运费金额 */
  @ExcelProperty("买家支付的运费金额")
  @DecimalString(
    message = "买家支付的运费金额小数格式不正确",
    label = "买家支付的运费金额"
  )
  private String shippingPrice;

  /** 买家为运费税支付的金额 */
  @ExcelProperty("买家为运费税支付的金额")
  @DecimalString(
    message = "买家为运费税支付的金额小数格式不正确",
    label = "买家为运费税支付的金额"
  )
  private String shippingTax;

  /** 买家为礼品包装支付的金额 */
  @ExcelProperty("买家为礼品包装支付的金额")
  @DecimalString(
    message = "买家为礼品包装支付的金额小数格式不正确",
    label = "买家为礼品包装支付的金额"
  )
  private String giftWrapPrice;

  /** 买家为礼品包装税支付的金额 */
  @ExcelProperty("买家为礼品包装税支付的金额")
  @DecimalString(
    message = "买家为礼品包装税支付的金额小数格式不正确",
    label = "买家为礼品包装税支付的金额"
  )
  private String giftWrapTax;

  /** 应用于订单商品的所有促销折扣的总和 */
  @ExcelProperty("应用于订单商品的所有促销折扣的总和")
  @DecimalString(
    message = "应用于订单商品的所有促销折扣的总和小数格式不正确",
    label = "应用于订单商品的所有促销折扣的总和"
  )
  private String itemPromotionDiscount;

  /** 应用于配送的促销折扣 */
  @ExcelProperty("应用于配送的促销折扣")
  @DecimalString(
    message = "应用于配送的促销折扣小数格式不正确",
    label = "应用于配送的促销折扣"
  )
  private String shipPromotionDiscount;

  /** 配送城市 */
  @ExcelProperty("配送城市")
  @Size(max = 50, message = "配送城市长度不能超过50")
  private String shipCity;

  /** 配送状态 */
  @ExcelProperty("配送状态")
  @Size(max = 50, message = "配送状态长度不能超过50")
  private String shipState;

  /** 邮政编码 */
  @ExcelProperty("邮政编码")
  @Size(max = 50, message = "邮政编码长度不能超过50")
  private String shipPostalCode;

  /** 配送国家 */
  @ExcelProperty("配送国家")
  @Size(max = 50, message = "配送国家长度不能超过50")
  private String shipCountry;

  /** 应用于此订单商品的所有商品促销的列表 */
  @ExcelProperty("应用于此订单商品的所有商品促销的列表")
  @Size(
    max = 50,
    message = "应用于此订单商品的所有商品促销的列表长度不能超过50"
  )
  private String promotionIds;

  /** 是否商务订单 */
  @ExcelProperty("是否商务订单")
  @BooleanString(message = "是否商务订单格式不正确，请使用“是”，“否”")
  private String isBusinessOrder;

  /** 采购订单号 */
  @ExcelProperty("采购订单号")
  @Size(max = 50, message = "采购订单号长度不能超过50")
  private String purchaseOrderNumber;

  /** 制定价格 */
  @ExcelProperty("制定价格")
  @Size(max = 50, message = "制定价格长度不能超过50")
  private String priceDesignation;

  /** 是否要签收 */
  @ExcelProperty("是否要签收")
  @BooleanString(message = "是否要签收格式不正确，请使用“是”，“否”")
  private String signatureConfirmationRecommended;

  /** 店铺id */
  @ExcelProperty("店铺id")
  @LongString(message = "店铺id数值格式不正确", label = "店铺id", min = 0L)
  private String sid;
}
